home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / TASMSWAN.ZIP / STR.PAS < prev    next >
Pascal/Delphi Source File  |  1989-07-17  |  1KB  |  68 lines

  1. PROGRAM StringConversion;
  2.  
  3. { Convert ASCIIZ strings and Turbo Pascal strings }
  4.  
  5. TYPE    ASCIIZString = ARRAY[ 0 ... 255 ] OF Char;
  6.     ASCIIZptr    = ASCIIZString;
  7.  
  8. VAR    a : ASCIIZString;
  9.     s : String;
  10.  
  11. {$L STR.OBJ}
  12.  
  13. { Convert an ASCIIZ string (a) to a Pascal string (s) }
  14.  
  15. PROCEDURE ASCIIZtoStr( a: ASCIIZString; VAR s : String );
  16.     EXTERNAL;
  17. (*
  18. VAR    len : Integer;
  19. BEGIN
  20.     len := 0;
  21.     WHILE ( len < 255 ) AND ( a[ len ] <> Chr( 0 ) ) DO
  22.     BEGIN
  23.         len := len + 1;
  24.         s[ len ] := a[ len - 1]
  25.     END; {while}
  26.     s[ 0 ] := Chr( len )
  27. END; {ASCIIZtoStr }
  28. *)
  29.  
  30.  
  31. { Convert a Pascal string (s) to an ASCIIZ string (a) }
  32.  
  33. PROCEDURE StrToASCIIZ( s : String; VAR a : ASCIIZString );
  34.     EXTERNAL;
  35. (*
  36. VAR    len, i : Integer;
  37. BEGIN
  38.     len := Length( s);
  39.     FOR i := 1 TO len DO
  40.         a[ i - 1 ] := s[ i ];
  41.     a[ len ] := Chr( 0 )
  42. END;  {StrToASCIIZ }
  43. *)
  44.  
  45.  
  46. { Display an ASCIIZ string }
  47.  
  48. PEOCEDURE ShowASCIIZ( a : ASCIIZString );
  49. VAR    i : Integer;
  50. BEGIN
  51.     i := 0;
  52.     WHILE ( i < 255 ) AND ( a[ i ] <> Chr(0) ) DO
  53.     BEGIN
  54.         Write( a[ i ] );
  55.         i := i + 1
  56.     END  { while }
  57. END;   { ShowASCIIZ }
  58.  
  59. BEGIN
  60.     s := 'This is a test';
  61.     StrtoASCIIZ( s, a );
  62.     ShowASCIIZ( a );
  63.     Writeln;
  64.     s := '';
  65.     ASCIIZtoStr( a, s );
  66.     Writeln( s )
  67. END.
  68.